// 给定一个只包括 '('，')'，'{'，'}'，'['，']' 的字符串，判断字符串是否有效。
// 左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。 注意空字符串可被认为是有效字符串。
var str1 = '()'
var str2 = '[]'
var str3 = '{}()[]'
var str4 = '(]'

function validParentheses(s) {
	let stack = []
	for (let i = 0; i < s.length; i++) {
		let ch = s.charAt(i)
		if (ch == '(' || ch == '[' || ch == '{') stack.push(ch)
		if (!stack.length) return false
		if (ch == ')' && stack.pop() !== '(') return false
		if (ch == ']' && stack.pop() !== '[') return false
		if (ch == '}' && stack.pop() !== '{') return false
	}
	return stack.length === 0
}
console.log(validParentheses(str1))
console.log(validParentheses(str2))
console.log(validParentheses(str3))
console.log(validParentheses(str4))
